Automated Concurrency-Bug Fixing

نویسندگان

  • Guoliang Jin
  • Wei Zhang
  • Dongdong Deng
چکیده

Concurrency bugs are widespread in multithreaded programs. Fixing them is time-consuming and error-prone. We present CFix, a system that automates the repair of concurrency bugs. CFix works with a wide variety of concurrency-bug detectors. For each failure-inducing interleaving reported by a bug detector, CFix first determines a combination of mutual-exclusion and order relationships that, once enforced, can prevent the buggy interleaving. CFix then uses static analysis and testing to determine where to insert what synchronization operations to force the desired mutual-exclusion and order relationships, with a best effort to avoid deadlocks and excessive performance losses. CFix also simplifies its own patches by merging fixes for related bugs. Evaluation using four different types of bug detectors and thirteen real-world concurrency-bug cases shows that CFix can successfully patch these cases without causing deadlocks or excessive performance degradation. Patches automatically generated by CFix are of similar quality to those manually written by developers.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Unified Approach to Eliminating Concurrency Bugs via Control Synthesis

Concurrency bugs threaten the safety of shared-memory multithreaded programs. The automated fixing techniques add new synchronization constructs; existing techniques may add too many synchronization constructs, sacrifice too much concurrency, or introduce deadlocks. The underlying problem is that existing techniques cannot simultaneously fix different bugs, especially different types of bugs, w...

متن کامل

A Study of Concurrency Bugs in an Open Source Software

Concurrent programming puts demands on software debugging and testing, as concurrent software may exhibit problems not present in sequential software, e.g., deadlocks and race conditions. In aiming to increase efficiency and effectiveness of debugging and bug-fixing for concurrent software, a deep understanding of concurrency bugs, their frequency and fixing-times would be helpful. Similarly, t...

متن کامل

How Do Fixes Become Bugs? A Comprehensive Characteristic Study on Incorrect Fixes in Commercial and Open Source Operating Systems

Software bugs affect system reliability. When a bug is exposed in the field, developers need to fix them. Unfortunately, the bug-fixing process can also introduce errors, which leads to buggy patches that further aggravate the damage to end users and erode software vendors’ reputation. This paper presents a comprehensive characteristic study on incorrect bug-fixes from large operating system co...

متن کامل

On Mining Concurrency Defect-Related Reports from Bug Repositories

We present early findings of two ongoing case studies in which we automatically extract reports about concurrency defects from the MySQL and Apache bug repositories. To mine the unstructured reports, we apply keyword search and machine learning, using linear and non-linear classifiers. We analyze the results in detail and suggest some improvements for this mining task. Automated Bug Report Clas...

متن کامل

Scaling Data Race Detection for Partitioned Global Address Space Programs Chang-

i. Low overhead automated and precise detection of concurrency bugs at scale. ii. Using low overhead bug detection tools to guide speculative program transformations for performance. iii. Techniques to reduce the concurrency required to reproduce a bug using partial program restart/replay. iv. Techniques to provide reproducible execution of floating point programs. v. Techniques for tuning the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012